3.(2001年)
从资源管理的观点来看,操作系统的管理对象是计算机系统的资源,操作系统则是管理系统资源的程序集合。
(1).试问操作系统所管理的资源有哪些?(4分)
(2).操作系统从哪几个方面对资源进行管理?主要完成什么工作?(12分)
(3).以存储管理中的段式存储管理为例,请叙述操作系统对内存的具体管理方案(包括功能、数据结构和算法)。(14分)
答案:
(1).操作系统所管理的资源分为硬件资源和软件资源,硬件资源包括:CPU、内存、各种外部设备,软件资源主要是信息(程序和数据)。(4分)
(2).操作系统在共享的前题下,以资源分配、使用和回收为出发点,考虑操作系统各部分程序的功能和算法,解决并发环境中的资源管理问题。
虽然操作系统所管理的各类资源的性质各不相同,但所需要解决的问题以及资源管理的策略又都具有类似之处。因此,每种资源管理模块都要研究以下几方面的内容:
①记住资源的使用状态,即记住哪些资源处于空闲,哪些资源已被使用和被谁使用等;
②确定资源的分配策略,即根据各类资源的不同特点确定一组原则,以决定如何进行资源的分配和调度;
③执行资源的分配,即根据用户的要求和资源分配策略,具体执行资源的分配工作;
④回收资源,即当某些用户作业已不再需要某种资源时,系统及时地回收资源,以便重新分配给其它的作业使用。
(答出一项给3分。)
(3).首先从内存划分、程序逻辑地址划分、内存分配几方面考虑段式存储管理方案的工作原理:
①内存划分:内存空间被动态地划分为若干个长度不相同的区域,每个区域称作一个物理段、每个物理段在内存中有一个起始地址,称作段首址。将物理段中的所有单元从0开始依次编址,称为段内地址。(2分)
②逻辑地址空间划分:用户程序按逻辑上有完整意义的段来划分。称为逻辑段。例如主程序、子程序、数据等都可各成一段,每段对应于一个过程,一个程序模块或一个数据集合。将一个用户程序的所有逻辑段从0开始编号,称为段号。将一个逻辑段中的所有单元从0开始编址,称为段内地址。(2分)
用户程序的逻辑地址由段号和段内地址两部分组成:段号,段内地址
③内存分配:系统以段为单位进行内存分配,为每一个逻辑段分配一个连续的内存区 (物理段)。逻辑上连续的段在内存不一定连续存放。(2分) 然后,从实现方法上考虑:
④建立段表(2分)
系统为每个用户程序建立一张段表,用于记录用户程序的逻辑段与内存物理段之间的对应关系,包括逻辑段号,物理段首地址和物理段长度三项内容。用户程序有多少逻辑段,该段表里就登记多少行,且按逻辑段的顺序排列。段表存放在内存系统区里。
⑤建立空闲区表(6分)
系统中设立一张内存空闲区表,记录内存中空闲区域情况,用于为段分配和回收内存。系统在寻找空闲区时可采用以下三种分配算法。
①首先适应算法
根据申请,在空闲区表中选取第一个满足申请长度的空闲区。此算法简单,可以快速做出分配决定。
②最佳适应算法
根据申请,在空闲区表中选择能满足申请长度的最小空闲区。此算法最节约空间,因为 它尽量不分割大的空闲区。其缺点是可能会形成很多很小的空闲区域,称作碎片。
③最坏适应算法
根据申请,在空闲区表中选择能满足申请要求的最大的空闲区。该算法的出发点是:在大空头区中装人信息后,分割剩下的空闲区相对也大,还能用于装入新的信息。该算法的优点是可以避免形成碎片;缺点是分割大的空闲区后,再遇到较大的申请时,无法满足的可能性较大。
4.(2002年)
目前,大多数计算机系统都支持虚拟页式地址转换机制。试回答下列问题:
(1).页式存储管理方案中,用户地址空间怎样划分?内存地址空间怎样划分?内存分配过程是怎样的?(10分)
(2).页表应设计哪些数据项,每个数据项的作用是什么?(10分)
(3).页式存储管理方案中,地址映射机制需要哪种寄存器的支持?为了加快地址映射速度,需要采取什么措施?该措施的作用是什么?(10分)
答案:
(1).系统将用户程序的逻辑空间按照相等大小划分成若干界面,称为逻辑页面。(2分)各个逻辑页面从0开始依次编号,每个逻辑页面内也从0开始编址,称为页内地址。用户程序的逻辑地址由逻辑页号和页内地址两部分组成。(2分)
页式存储管理将内存空间按照逻辑页面大小划分成等长的若干区域,每个区域为一个内存块。(2分)内存的所有内存块从0开始编号。(1分)
内存分配时,以页面(块)为单位,并按用户程序所需页数多少进行分配。(2分)逻辑上相邻的页面在内存中不一定相邻,即分配给用户程序的内存块不一定连续。(1分)
(2).页表表项有:
逻辑页面号;(2分)
物理页面号(或块号);(2分)
驻留位(中断位或特征位):指示该页在内存还是在外存;(2分)
外存地址:指示该页在外存的地址;(2分)
修改位:指示该页在内存驻留期间是否被修改过;(2分)
(3).系统提供一对硬件寄存器:页表始址寄存器和页表长度寄存器。(2分,答对1个为1分)
①页表始址寄存器,用于保存正在运行进程的页表在内存的首地址。当进程被调度程序选中投入运行时,系统将其页表首地址从进程控制块中取出送入该寄存器。(2分)
②页表长度寄存器,用于保存正在运行进程的页表的长度。当进程被选中运行时,系统将它从进程控制中块中取出送入该寄存器。(2分)
为了加快地址映射速度,可在地址映射机制中增加一个小容量的联想寄存器(相联存储器),(2分)它由高速寄存器组成,成为一张快表,快表用来存放当前访问最频繁的少数活动页的页号。(2分)